Información general

Estudiantes:

  • Aburto Camacllanqui, Elías
  • Avilés Elias, Gabriel
  • Huaman Loayza, Guido
  • Ramírez De la Cruz, Guadalupe
  • Rivas Su, Juan Diego

Curso: Fundamento de R para CCSS y Gestión Pública 2023

Diplomatura: Especialización en Ciencia de Datos para las Ciencia Sociales y la Gestión Pública

1. Introducción

Contexto

En los últimos años, …

Problema

Ante la ingente cantidad de datos …

Objetivo

El presente trabajo persigue el siguiente objetivo:

Utilizar …

2. Metodología

Base de datos

  • Fuente: Portal Web …
  • Archivo: “H: …” / BD_SPSS.zip
  • Enlace: ESCALE

Variables

  • Denominación: Durante el presente año usted, …
  • Categorías: “X”, “Y”, “Z”, etc.

Preprocesamiento

library(tidyverse) #conjunto de paquetes 
library("labelled") #Paquete para ver las etiquetas de las variables


# #Creando las bases de datos
# df1 <- haven::read_sav("01. Data/CARATULA/01_PENALES_CARATULA.sav")
# df2 <- haven::read_sav("01. Data/CONDICIONES DE VIDA DEL INTERNO/01_PENALES_CAP300.sav")
# df3 <- haven::read_sav("01. Data/CONDICIONES DEL INTERNO/01_PENALES_CAP100.sav")
# df4 <- haven::read_sav("01. Data/ROL DE LAS INSTITUCIONES/01_PENALES_CAP400.sav")
# df5 <- haven::read_sav("01. Data/TIPIFICACION DEL DELITO/01_PENALES_CAP200.sav")
# 
# #Integrando las bases de datos
# 
# df_1_2 <- inner_join(df1, df2, by = "ID_CARATULA", "INTERNO_ID")
# df_1_2_3 <- inner_join(df_1_2, df3, by = "ID_CARATULA", "INTERNO_ID")
# df_1_2_3_4 <- inner_join(df_1_2_3, df4, by = "ID_CARATULA", "INTERNO_ID")
# df_total <- inner_join(df_1_2_3_4, df5, by = "ID_CARATULA", "INTERNO_ID")
# Seleccionar las variables de Interés

# CNPP_data <- df_total |> 
#   select(EST_PENIT, GENERO, E_CIVIL, TSALUD_8,
#          EDAD, NACIONALIDAD, NAC_DD, DELITO_GENERICO, P101, P104_1, 
#          P105, P107_1, P107C_1, P107_2, P107_3, P107_4, P107_5, 
#          P107_6, P107_7, P107_8, P107_9, P107_10, P107_11, P107_12, 
#          P109_1, P109_2, P109_3, P114, P133, P135, P201_DD, P204, P215, P220, 
#          P303, P306, P308, P313_1, P313_2, P313_3, P313_4, P313_5, 
#          P314, P315, P403_1, P403_2, P403_3, P403_4, P403_5, P403_6, 
#          P403_7)


# Guardar el dataframe en formato sav
# library(haven)
# 
# write_sav(CNPP_data, "CNPP_data.sav")
# Importar datos

CNPP_data <- haven::read_sav("CNPP_data.sav")
CNPP_data
# Presentar el contenido de las variables de interés
var_label(CNPP_data)
## $EST_PENIT
## [1] "7. NOMBRE DEL ESTABLECIMIENTO PENITENCIARIO (E.P.)"
## 
## $GENERO
## [1] "12. SEXO"
## 
## $E_CIVIL
## [1] "13. ESTADO CIVIL"
## 
## $TSALUD_8
## [1] "17. TIPO DE SEGURO DE SALUD_8. No tiene seguro de salud"
## 
## $EDAD
## [1] "18. EDAD"
## 
## $NACIONALIDAD
## [1] "20. NACIONALIDAD"
## 
## $NAC_DD
## [1] "22. LUGAR DE NAC._A. DEPARTAMENTO"
## 
## $DELITO_GENERICO
## [1] "DELITO GENÉRICO"
## 
## $P101
## [1] "101. EL IDIOMA O LENGUA MATERNA QUE USTED APRENDIÓ EN SU NIÑEZ FUE:"
## 
## $P104_1
## [1] "104. ANTES DE INGRESAR AL E.P., ¿CUÁL FUE EL ÚLTIMO AÑO O GRADO DE ESTUDIOS Y NIVEL QUE APROBÓ?_NIVEL DE ESTUDIOS"
## 
## $P105
## [1] "105. ¿CUÁL FUE LA RAZÓN PRINCIPAL POR LA QUE USTED NO ESTUDIÓ O NO TERMINÓ DE ESTUDIAR EN EL COLEGIO?"
## 
## $P107_1
## [1] "107_1. ¿PADECE UD. DE: ENFERMEDADES CRÓNICAS_Enfermedad pulmonar crónica tal como asma, bronquitis o enfisema?"
## 
## $P107C_1
## [1] "107C_1. ¿ACTUALMENTE RECIBE UD. TRATAMIENTO MÉDICO (MEDICINA, TERAPIA, ETC)?"
## 
## $P107_2
## [1] "107_2. ¿PADECE UD. DE: ENFERMEDADES CRÓNICAS_Hipertensión, es decir, presión alta?"
## 
## $P107_3
## [1] "107_3. ¿PADECE UD. DE: ENFERMEDADES CRÓNICAS_Diabetes, es decir, niveles altos de azúcar en la sangre?"
## 
## $P107_4
## [1] "107_4. ¿PADECE UD. DE: ENFERMEDADES INFECTO CONTAGIOSAS_Tuberculosis?"
## 
## $P107_5
## [1] "107_5. ¿PADECE UD. DE: ENFERMEDADES INFECTO CONTAGIOSAS_Infecciones de Transmisión Sexual?"
## 
## $P107_6
## [1] "107_6. ¿PADECE UD. DE: ENFERMEDADES INFECTO CONTAGIOSAS_VIH/SIDA?"
## 
## $P107_7
## [1] "107_7. ¿PADECE UD. DE: OTRAS ENFERMEDADES_Hepatitis?"
## 
## $P107_8
## [1] "107_8. ¿PADECE UD. DE: OTRAS ENFERMEDADES_Depresión?"
## 
## $P107_9
## [1] "107_9. ¿PADECE UD. DE: OTRAS ENFERMEDADES_Ansiedad?"
## 
## $P107_10
## [1] "107_10. ¿PADECE UD. DE: OTRAS ENFERMEDADES_Adicción a sustancias psicoactivas?"
## 
## $P107_11
## [1] "107_11. ¿PADECE UD. DE: OTRAS ENFERMEDADES_Cáncer?"
## 
## $P107_12
## [1] "107_12. ¿PADECE UD. DE: OTRAS ENFERMEDADES_Otro?"
## 
## $P109_1
## [1] "109_1. ¿ANTES DE INGRESAR AL E.P. USTED CONSUMÍA: Drogas?"
## 
## $P109_2
## [1] "109_2. ¿ANTES DE INGRESAR AL E.P. USTED CONSUMÍA: Bebidas alcohólicas?"
## 
## $P109_3
## [1] "109_3. ¿ANTES DE INGRESAR AL E.P. USTED CONSUMÍA: Cigarrillos?"
## 
## $P114
## [1] "114. ANTES DE INGRESAR AL ESTABLECIMIENTO PENITENCIARIO, ¿USTED TRABAJÓ ALGUNA VEZ?"
## 
## $P133
## [1] "133. ¿ALGÚN MIEMBRO DE SU FAMILIA ESTUVO PRESO EN UN ESTABLECIMIENTO PENITENCIARIO ALGUNA VEZ?"
## 
## $P135
## [1] "135. ANTES DE CUMPLIR LOS 18 AÑOS DE EDAD. ¿ALGUN(OS) DE SU(S) MEJOR(ES) AMIGO(S) COMETÍA(N) DELITOS?"
## 
## $P201_DD
## [1] "201. DEPARTAMENTO EN EL QUE OCURRIO EL DELITO"
## 
## $P204
## [1] "204. CUANDO OCURRIÓ EL DELITO, ¿USTED USÓ ALGÚN ARMA?"
## 
## $P215
## [1] "215. ¿USTED ESTUVO INTERNADO(A) EN ALGÚN CENTRO JUVENIL?"
## 
## $P220
## [1] "220. SIN TOMAR EN CUENTA LA SENTENCIA QUE ACTUALMENTE CUMPLE: ¿EN ALGUNA OTRA OCASIÓN LO HABÍAN SENTENCIADO O PROCESADO A PENA EFECTIVA POR ALGÚN OTRO DELITO?"
## 
## $P303
## [1] "303. ¿USTED ESTÁ ESTUDIANDO EN ALGÚN PROGRAMA EN EL ESTABLECIMIENTO PENITENCIARIO?"
## 
## $P306
## [1] "306. ¿POR QUÉ PARTICIPA EN LOS TALLERES LABORALES?"
## 
## $P308
## [1] "308. ¿CUÁL ES LA RAZÓN POR LA QUE USTED NO PARTICIPA EN PROGRAMAS EDUCATIVOS?"
## 
## $P313_1
## [1] "313_1. ¿EN CUÁLES DE LAS SIGUEINTES ACTIVIDADES UD HA PARTICIPADO DURANTE EL ÚLTIMO MES: Actividades deportivas?"
## 
## $P313_2
## [1] "313_2. ¿EN CUÁLES DE LAS SIGUEINTES ACTIVIDADES UD HA PARTICIPADO DURANTE EL ÚLTIMO MES: Actividades laborales reconocidas por el INPE?"
## 
## $P313_3
## [1] "313_3. ¿EN CUÁLES DE LAS SIGUEINTES ACTIVIDADES UD HA PARTICIPADO DURANTE EL ÚLTIMO MES: Labores de limpieza o mantenimiento de la institución?"
## 
## $P313_4
## [1] "313_4. ¿EN CUÁLES DE LAS SIGUEINTES ACTIVIDADES UD HA PARTICIPADO DURANTE EL ÚLTIMO MES: Programa de tratamiento PIM?"
## 
## $P313_5
## [1] "313_5. ¿EN CUÁLES DE LAS SIGUEINTES ACTIVIDADES UD HA PARTICIPADO DURANTE EL ÚLTIMO MES: Otros"
## 
## $P314
## [1] "314. ¿POR QUÉ USTED NO REALIZA NINGUNA ACTIVIDAD DENTRO DE LA INSTITUCIÓN?"
## 
## $P315
## [1] "315. EN LOS ÚLTIMOS TRES MESES, ¿CON QUÉ FRECUENCIA LO VISITÓ SU FAMILIA?"
## 
## $P403_1
## [1] "403_1 ¿QUÉ PIENSA HACER CUANDO SALGA DEL EP? Estudiar"
## 
## $P403_2
## [1] "403_2 ¿QUÉ PIENSA HACER CUANDO SALGA DEL EP? Trabajar"
## 
## $P403_3
## [1] "403_3 ¿QUÉ PIENSA HACER CUANDO SALGA DEL EP? Viajar"
## 
## $P403_4
## [1] "403_4 ¿QUÉ PIENSA HACER CUANDO SALGA DEL EP? Retornar a mi país"
## 
## $P403_5
## [1] "403_5 ¿QUÉ PIENSA HACER CUANDO SALGA DEL EP? Otros"
## 
## $P403_6
## [1] "403_6 ¿QUÉ PIENSA HACER CUANDO SALGA DEL EP? Regresar con mi familia"
## 
## $P403_7
## [1] "403_7 ¿QUÉ PIENSA HACER CUANDO SALGA DEL EP? Reincorporarme a la sociedad"
# Identificación de valores atípicos y datos perdidos
summary(CNPP_data)
##   EST_PENIT             GENERO        E_CIVIL         TSALUD_8     
##  Length:75963       Min.   :1.00   Min.   :1.000   Min.   :0.0000  
##  Class :character   1st Qu.:1.00   1st Qu.:1.000   1st Qu.:0.0000  
##  Mode  :character   Median :1.00   Median :3.000   Median :0.0000  
##                     Mean   :1.06   Mean   :3.525   Mean   :0.4438  
##                     3rd Qu.:1.00   3rd Qu.:6.000   3rd Qu.:1.0000  
##                     Max.   :2.00   Max.   :6.000   Max.   :1.0000  
##                                                                    
##       EDAD       NACIONALIDAD          NAC_DD          DELITO_GENERICO   
##  Min.   :18.00   Length:75963       Length:75963       Length:75963      
##  1st Qu.:27.00   Class :character   Class :character   Class :character  
##  Median :34.00   Mode  :character   Mode  :character   Mode  :character  
##  Mean   :36.04                                                           
##  3rd Qu.:43.00                                                           
##  Max.   :89.00                                                           
##                                                                          
##       P101            P104_1            P105            P107_1     
##  Min.   : 1.000   Min.   : 1.000   Min.   : 1.000   Min.   :1.000  
##  1st Qu.: 7.000   1st Qu.: 4.000   1st Qu.: 3.000   1st Qu.:2.000  
##  Median : 7.000   Median : 5.000   Median : 3.000   Median :2.000  
##  Mean   : 6.396   Mean   : 5.183   Mean   : 4.063   Mean   :1.919  
##  3rd Qu.: 7.000   3rd Qu.: 6.000   3rd Qu.: 4.000   3rd Qu.:2.000  
##  Max.   :10.000   Max.   :11.000   Max.   :12.000   Max.   :3.000  
##                   NA's   :1833     NA's   :31323                   
##     P107C_1          P107_2          P107_3         P107_4          P107_5     
##  Min.   :1.00    Min.   :1.000   Min.   :1.00   Min.   :1.000   Min.   :1.000  
##  1st Qu.:1.00    1st Qu.:2.000   1st Qu.:2.00   1st Qu.:2.000   1st Qu.:2.000  
##  Median :2.00    Median :2.000   Median :2.00   Median :2.000   Median :2.000  
##  Mean   :1.52    Mean   :1.935   Mean   :1.98   Mean   :1.962   Mean   :1.995  
##  3rd Qu.:2.00    3rd Qu.:2.000   3rd Qu.:2.00   3rd Qu.:2.000   3rd Qu.:2.000  
##  Max.   :2.00    Max.   :3.000   Max.   :3.00   Max.   :3.000   Max.   :3.000  
##  NA's   :71303                                                                 
##      P107_6      P107_7          P107_8          P107_9         P107_10     
##  Min.   :1   Min.   :1.000   Min.   :1.000   Min.   :1.000   Min.   :1.000  
##  1st Qu.:2   1st Qu.:2.000   1st Qu.:2.000   1st Qu.:2.000   1st Qu.:2.000  
##  Median :2   Median :2.000   Median :2.000   Median :2.000   Median :2.000  
##  Mean   :2   Mean   :1.996   Mean   :1.908   Mean   :1.918   Mean   :1.977  
##  3rd Qu.:2   3rd Qu.:2.000   3rd Qu.:2.000   3rd Qu.:2.000   3rd Qu.:2.000  
##  Max.   :3   Max.   :3.000   Max.   :3.000   Max.   :3.000   Max.   :3.000  
##                                                                             
##     P107_11         P107_12          P109_1          P109_2     
##  Min.   :1.000   Min.   :1.000   Min.   :1.000   Min.   :1.000  
##  1st Qu.:2.000   1st Qu.:2.000   1st Qu.:2.000   1st Qu.:1.000  
##  Median :2.000   Median :2.000   Median :2.000   Median :1.000  
##  Mean   :2.005   Mean   :1.923   Mean   :1.758   Mean   :1.327  
##  3rd Qu.:2.000   3rd Qu.:2.000   3rd Qu.:2.000   3rd Qu.:2.000  
##  Max.   :3.000   Max.   :3.000   Max.   :3.000   Max.   :3.000  
##                                                                 
##      P109_3           P114            P133            P135      
##  Min.   :1.000   Min.   :1.000   Min.   :1.000   Min.   :1.000  
##  1st Qu.:1.000   1st Qu.:1.000   1st Qu.:1.000   1st Qu.:1.000  
##  Median :2.000   Median :1.000   Median :2.000   Median :2.000  
##  Mean   :1.672   Mean   :1.044   Mean   :1.712   Mean   :1.671  
##  3rd Qu.:2.000   3rd Qu.:1.000   3rd Qu.:2.000   3rd Qu.:2.000  
##  Max.   :3.000   Max.   :2.000   Max.   :3.000   Max.   :3.000  
##                                                                 
##    P201_DD               P204            P215            P220      
##  Length:75963       Min.   :1.000   Min.   :1.000   Min.   :1.000  
##  Class :character   1st Qu.:2.000   1st Qu.:2.000   1st Qu.:2.000  
##  Mode  :character   Median :2.000   Median :2.000   Median :2.000  
##                     Mean   :1.829   Mean   :1.931   Mean   :1.842  
##                     3rd Qu.:2.000   3rd Qu.:2.000   3rd Qu.:2.000  
##                     Max.   :3.000   Max.   :3.000   Max.   :3.000  
##                     NA's   :70      NA's   :70      NA's   :16632  
##       P303            P306            P308            P313_1     
##  Min.   :1.000   Min.   :1.00    Min.   : 1.000   Min.   :1.000  
##  1st Qu.:1.000   1st Qu.:1.00    1st Qu.: 3.000   1st Qu.:1.000  
##  Median :2.000   Median :1.00    Median : 3.000   Median :1.000  
##  Mean   :1.743   Mean   :1.56    Mean   : 3.708   Mean   :1.354  
##  3rd Qu.:2.000   3rd Qu.:2.00    3rd Qu.: 4.000   3rd Qu.:2.000  
##  Max.   :2.000   Max.   :4.00    Max.   :10.000   Max.   :3.000  
##  NA's   :82      NA's   :62491   NA's   :19581    NA's   :82     
##      P313_2          P313_3          P313_4          P313_5     
##  Min.   :1.000   Min.   :1.000   Min.   :1.000   Min.   :1.000  
##  1st Qu.:1.000   1st Qu.:1.000   1st Qu.:1.000   1st Qu.:2.000  
##  Median :2.000   Median :1.000   Median :2.000   Median :2.000  
##  Mean   :1.525   Mean   :1.306   Mean   :1.606   Mean   :2.003  
##  3rd Qu.:2.000   3rd Qu.:2.000   3rd Qu.:2.000   3rd Qu.:2.000  
##  Max.   :3.000   Max.   :3.000   Max.   :3.000   Max.   :3.000  
##  NA's   :82      NA's   :82      NA's   :82      NA's   :82     
##       P314            P315            P403_1           P403_2      
##  Min.   : 1.00   Min.   : 1.000   Min.   :0.0000   Min.   :0.0000  
##  1st Qu.: 4.00   1st Qu.: 3.000   1st Qu.:0.0000   1st Qu.:1.0000  
##  Median : 7.00   Median : 5.000   Median :0.0000   Median :1.0000  
##  Mean   : 6.29   Mean   : 4.838   Mean   :0.1344   Mean   :0.9286  
##  3rd Qu.: 8.00   3rd Qu.: 6.000   3rd Qu.:0.0000   3rd Qu.:1.0000  
##  Max.   :10.00   Max.   :10.000   Max.   :1.0000   Max.   :1.0000  
##  NA's   :70061   NA's   :82       NA's   :133      NA's   :133     
##      P403_3            P403_4            P403_5            P403_6     
##  Min.   :0.00000   Min.   :0.00000   Min.   :0.00000   Min.   :1      
##  1st Qu.:0.00000   1st Qu.:0.00000   1st Qu.:0.00000   1st Qu.:1      
##  Median :0.00000   Median :0.00000   Median :0.00000   Median :1      
##  Mean   :0.04893   Mean   :0.01386   Mean   :0.01917   Mean   :1      
##  3rd Qu.:0.00000   3rd Qu.:0.00000   3rd Qu.:0.00000   3rd Qu.:1      
##  Max.   :1.00000   Max.   :1.00000   Max.   :1.00000   Max.   :1      
##  NA's   :133       NA's   :133       NA's   :133       NA's   :72270  
##      P403_7     
##  Min.   :1      
##  1st Qu.:1      
##  Median :1      
##  Mean   :1      
##  3rd Qu.:1      
##  Max.   :1      
##  NA's   :75201

Análisis de Datos

3. Resultados

ANTES: ANTECEDENTES Y ASPECTOS SOCIODEMOGRÁFICOS

P109_1, P109_2 y P109_3 ¿ANTES DE INGRESAR AL E.P. USTED CONSUMÍA: Drogas? ¿ANTES DE INGRESAR AL E.P. USTED CONSUMÍA: Bebidas alcohólicas? ¿ANTES DE INGRESAR AL E.P. USTED CONSUMÍA: Cigarrillos?
# Se crea una nueva variable, denominada "consumo"; cuyos valor es "Sí" cuando el reo consumía drogas, bebidas alcohólicas o cigarillos antes de ingresar al centro penitenciario.

CNPP_data <- CNPP_data |> 
  mutate(consumo = case_when(P109_1 == 1 & (P109_2 == 2 | P109_2 == 3) & (P109_3 == 2 | P109_3 == 3) ~ "DROGAS", (P109_1 == 2 | P109_1 == 3) & P109_2 == 1 & (P109_3 == 2 | P109_3 == 3) ~ "BEBIDAS ALCOHOLICAS", (P109_1 == 2 | P109_1 == 3) & (P109_2 == 2 | P109_2 == 3) & P109_3 == 1 ~ "CIGARRILLOS", P109_1 == 1 & P109_2 == 1 & (P109_3 == 2 | P109_3 == 3) ~ "DROGAS Y BEBIDAS ALCOHOLICAS", P109_1 == 1 & (P109_2 == 2 | P109_2 == 3) & P109_3 == 1 ~ "DROGAS Y CIGARRILLOS", (P109_1 == 2 | P109_1 == 3) & P109_2 == 1 & P109_3 == 1 ~ "BEBIDAS ALCOHOLICAS Y CIGARRILLOS", P109_1 == 1 & P109_2 == 1 & P109_3 == 1 ~ "DROGAS, BEBIDAS ALCOHOLICAS Y CIGARRILLOS", TRUE ~ "NO/NO CONTESTA"))

# Utilizando 'count' y 'mutate' hallamos la cantidad de reos que consumían drogas, bebidas alcohólicas o cigarillos antes de ingresar al centro penitenciario, así como el porcentaje que representan respecto del total.

CNPP_data |>
  count(consumo) |>                          
  mutate(Porcentaje_consumo = round(n/sum(n)*100,1)) |> 
  print(n = Inf) |>   
  arrange(desc(n))
## # A tibble: 8 × 3
##   consumo                                       n Porcentaje_consumo
##   <chr>                                     <int>              <dbl>
## 1 BEBIDAS ALCOHOLICAS                       23476               30.9
## 2 BEBIDAS ALCOHOLICAS Y CIGARRILLOS         13450               17.7
## 3 CIGARRILLOS                                2279                3  
## 4 DROGAS                                     3053                4  
## 5 DROGAS Y BEBIDAS ALCOHOLICAS               6130                8.1
## 6 DROGAS Y CIGARRILLOS                       1255                1.7
## 7 DROGAS, BEBIDAS ALCOHOLICAS Y CIGARRILLOS  8203               10.8
## 8 NO/NO CONTESTA                            18117               23.8
# A partir de la variable obtenida ('consumo'), se presenta a continuación un gráfico de barras que permitirá observar la cantidad de reos que consumían drogas, bebidas alcohólicas o cigarillos antes de ingresar al centro penitenciario.


etiqueta_1 <- c(`1`="Sí",
              `2`="No",
              `3`="No sabe/No contesta")

CNPP_data|>
  mutate(consumo = recode_factor(consumo,!!!etiqueta_1)) |>
  count(consumo) |>
  ggplot() +
  aes(x=1, y=n, fill=consumo) +
  geom_col(position = "dodge", width = 0.8) +
  geom_text(aes(label = n),
            position = position_dodge(width = 0.8), vjust = -0.5, size = 3, fontface = "bold") +
  theme_minimal() + 
  scale_fill_brewer(palette="Set1") +
  labs(
    title = "PERÚ: CONSUMO ANTES DE INGRESAR AL ESTABLECIMIENTO \nPENITENCIARIO",
    subtitle = "(Frecuencia, porcentaje)",
    x = "Consumo",
    y = "Frecuencia")+
  theme(axis.text.x = element_blank())

Como puede observarse, un gran número de reos señala que consumían bebidas alcohólicas antes de ingresar al establecimiento penitenciario. En segundo lugar, 18,117 reos mencionan que no consumían ninguna de las opciones previamente mencionadas o prefirieron no contestar a la interrogante.

Luego de ello, podemos observar que lo siguen en cantidad los reos que consumían “Bebidas alcohólicas y cigarrillos”, “Drogas, bebidas alcohólicas y cigarrilllos” y “Drogas y bebidas alcohólicas”; al respecto, puede observarse que las bebidas alcohólicas tienen una fuerte presencia en el consumo de los reos, desde antes de ingresar al establecimiento penitenciario.

P114. ANTES DE INGRESAR AL ESTABLECIMIENTO PENITENCIARIO, ¿USTED TRABAJÓ ALGUNA VEZ?
# Utilizando 'count' y 'mutate' hallamos la cantidad de reos que trabajaron alguna vez antes de ingresar al establecimiento penitenciario, así como el porcentaje que representan respecto del total.

CNPP_data |>
  count(P114) |>
  mutate(Porcentaje_trabajo_antes = round(n/sum(n)*100,1)) |>
  print(n = Inf) |>   
  arrange(desc(n)) |> 
  rename("cantidad_reos"=n)
## # A tibble: 2 × 3
##   P114          n Porcentaje_trabajo_antes
##   <dbl+lbl> <int>                    <dbl>
## 1 1 [Sí]    72610                     95.6
## 2 2 [No]     3353                      4.4
# A partir de ello, se presenta a continuación un gráfico circular que permitirá observar la cantidad de reos que trabajaron o no alguna vez antes de ingresar al establecimiento penitenciario.

table(CNPP_data$P114)
## 
##     1     2 
## 72610  3353
etiqueta_1 <- c(`1`="Sí",
              `2`="No",
              `3`="No sabe/No contesta")

CNPP_data |>
  mutate(P114 = recode_factor(P114,!!!etiqueta_1)) |>
  count(P114) |>
  mutate(
    Porcentaje = round(n/sum(n)*100,1)) |>
  ggplot() +
  aes(x=1, y=Porcentaje, fill=P114) +
  geom_bar(stat="identity") +
  geom_text(aes(label = paste0(n,", ",round(Porcentaje,1),"%")), 
            position = position_stack(vjust = 0.5), size=3, fontface = "bold") +
  coord_polar(theta = "y") + 
  theme_void() + 
  scale_fill_brewer(palette="Set1") +
  labs(
    title = "PERÚ: POBLACIÓN PENITENCIARIA QUE TRABAJÓ ANTES \nINGRESAR AL ESTABLECIMIENTO PENITENCIARIO",
    subtitle = "(Frecuencia, porcentaje)")

Como puede observarse, el 95.6% de los reos sí trabajó alguna vez antes de ingresar al establecimiento penitenciario.

133. ¿ALGÚN MIEMBRO DE SU FAMILIA ESTUVO PRESO EN UN ESTABLECIMIENTO PENITENCIARIO ALGUNA VEZ?
# Utilizando 'count' y 'mutate' hallamos la cantidad de reos que tuvieron a algún miembro de su familia preso en un establecimiento penitenciario, así como el porcentaje que representan respecto del total.

CNPP_data |>
  count(P133) |>
  mutate(Porcentaje_trabajo_antes = round(n/sum(n)*100,1)) |>
  print(n = Inf) |>   
  arrange(desc(n)) |> 
  rename("cantidad_reos"=n)
## # A tibble: 3 × 3
##   P133                              n Porcentaje_trabajo_antes
##   <dbl+lbl>                     <int>                    <dbl>
## 1 1 [Sí]                        22442                     29.5
## 2 2 [No]                        52924                     69.7
## 3 3 [No recuerda / No contesta]   597                      0.8
# A partir de ello, se presenta a continuación un gráfico circular que permitirá observar la cantidad de reos que tuvieron a algún miembro de su familia preso en un establecimiento penitenciario.

table(CNPP_data$P133)
## 
##     1     2     3 
## 22442 52924   597
etiqueta_1 <- c(`1`="Sí",
              `2`="No",
              `3`="No recuerda/No contesta")

CNPP_data |>
  mutate(P133 = recode_factor(P133,!!!etiqueta_1)) |>
  count(P133) |>
  mutate(
    Porcentaje = round(n/sum(n)*100,1)) |>
  ggplot() +
  aes(x=1, y=Porcentaje, fill=P133) +
  geom_bar(stat="identity") +
  geom_text(aes(label = paste0(n,", ",round(Porcentaje,1),"%")), 
            position = position_stack(vjust = 0.5), size=3, fontface = "bold") +
  coord_polar(theta = "y") + 
  theme_void() + 
  scale_fill_brewer(palette="Set1") +
  labs(
    title = "PERÚ: ¿ALGÚN MIEMBRO DE LA FAMILIA DEL REO PENITENCIARIO \nESTUVO PRESO EN UN ESTABLECIMIENTO PENITENCIARIO \nALGUNA VEZ?",
    subtitle = "(Frecuencia, porcentaje)")

Como puede observarse, el 69.7% de los reos no tuvo a algún miembro de su familia preso en un establecimiento penitenciario; mientras que un 29.5% afirma que sí lo tuvo.

P135. ANTES DE CUMPLIR LOS 18 AÑOS DE EDAD. ¿ALGUN(OS) DE SU(S) MEJOR(ES) AMIGO(S) COMETÍA(N) DELITOS?
# Utilizando 'count' y 'mutate' hallamos la cantidad de reos que, antes de cumplir los 18 años de edad, tuvieron algún mejor amigo que cometía delitos, así como el porcentaje que representan respecto del total.

CNPP_data |>
  count(P135) |>
  mutate(Porcentaje_trabajo_antes = round(n/sum(n)*100,1)) |>
  print(n = Inf) |>   
  arrange(desc(n)) |> 
  rename("cantidad_reos"=n)
## # A tibble: 3 × 3
##   P135                              n Porcentaje_trabajo_antes
##   <dbl+lbl>                     <int>                    <dbl>
## 1 1 [SÍ]                        25794                     34  
## 2 2 [No]                        49370                     65  
## 3 3 [No recuerda / No contesta]   799                      1.1
# A partir de ello, se presenta a continuación un gráfico circular que permitirá observar la cantidad de reos que, antes de cumplir los 18 años de edad, tuvieron algún mejor amigo que cometía delitoso.

table(CNPP_data$P135)
## 
##     1     2     3 
## 25794 49370   799
etiqueta_1 <- c(`1`="Sí",
              `2`="No",
              `3`="No recuerda/No contesta")

CNPP_data |>
  mutate(P135 = recode_factor(P135,!!!etiqueta_1)) |>
  count(P135) |>
  mutate(
    Porcentaje = round(n/sum(n)*100,1)) |>
  ggplot() +
  aes(x=1, y=Porcentaje, fill=P135) +
  geom_bar(stat="identity") +
  geom_text(aes(label = paste0(n,", ",round(Porcentaje,1),"%")), 
            position = position_stack(vjust = 0.5), size=3, fontface = "bold") +
  coord_polar(theta = "y") + 
  theme_void() + 
  scale_fill_brewer(palette="Set1") +
  labs(
    title = "PERÚ: ANTES DE QUE EL REO PENITENCIARIO CUMPLA \n18 AÑOS, ¿ALGUNO DE SUS MEJORES AMIGOS COMETÍAN \nDELITOS?",
    subtitle = "(Frecuencia, porcentaje)")

Como puede observarse, el 65% de los reos señala que, antes de cumplir los 18 años de edad, no tuvieron algún mejor amigo que cometiera delitos; mientras que un 34% señala que sí lo tuvo.

DURANTE: CONTEXTO DEL DELITO Y SITUACIÓN EN EL ESTABLECIMIENTO PENITENCIARIO

P107_1 al P107_12 ¿PADECE UD. DE: ENFERMEDADES CRÓNICAS? ¿PADECE UD. DE: ENFERMEDADES INFECTO CONTAGIOSAS? ¿PADECE UD. DE: OTRAS ENFERMEDADES?

-Enfermedades crónicas: asma, bronquitis o enfisema, hipertensión, diabetes.

-Enfermedades infecto contagiosas: tuberculosis, infecciones de transmisión sexual, VIH/SIDA.

-Otras enfermedades: hepatitis, depresión, ansiedad, adicción a sustancias psicoactivas, cáncer, otro.

# A continuación se crea una nueva variable, denominada "enfermedades"; cuyo valor es "Sí" cuando el reo posee una enfermedad crónica, infecto contagiosa u otra.

# Para dicho fin, en primer lugar creamos una variable dicotómica por cada tipo de enfermedad (Crónica/Infecto contagiosa/Otra); en la cual, el valor de "1" significa que el reo tiene al menos una enfermedad del tipo respectivo. 


CNPP_data <- CNPP_data |> 
  mutate(enfermedad_cronica = case_when(P107_1 == 1 | P107_2 == 1 | P107_3 == 1 ~ "1", TRUE ~ "2"))

CNPP_data <- CNPP_data |> 
  mutate(enfermedad_infecto_contagiosa = case_when(P107_4 == 1 | P107_5 == 1 | P107_6 == 1 ~ "1", TRUE ~ "2"))


CNPP_data <- CNPP_data |> 
  mutate(enfermedad_otra = case_when(P107_7 == 1 | P107_8 == 1 | P107_9 == 1 | P107_10 == 1 | P107_11 == 1 | P107_12 == 1 ~ "1", TRUE ~ "2"))

# Luego, creamos una nueva variable denominada 'enfermedades', que pueda resumir el tipo de enfermedad que tiene cada reo penitenciario.

CNPP_data <- CNPP_data |> 
  mutate(enfermedades = case_when(enfermedad_cronica == 1 & enfermedad_infecto_contagiosa == 2 & enfermedad_otra == 2 ~ "CRONICA", enfermedad_cronica == 2 & enfermedad_infecto_contagiosa == 1 & enfermedad_otra == 2 ~ "INFECTO CONTAGIOSA", enfermedad_cronica == 2 & enfermedad_infecto_contagiosa == 2 & enfermedad_otra == 1 ~ "OTRA", enfermedad_cronica == 1 & enfermedad_infecto_contagiosa == 1 & enfermedad_otra == 2 ~ "CRONICA E INFECTO CONTAGIOSA", enfermedad_cronica == 1 & enfermedad_infecto_contagiosa == 2 & enfermedad_otra == 1 ~ "CRONICA Y OTRA", enfermedad_cronica == 2 & enfermedad_infecto_contagiosa == 1 & enfermedad_otra == 1 ~ "INFECTO CONTAGIOSA Y OTRA", enfermedad_cronica == 1 & enfermedad_infecto_contagiosa == 1 & enfermedad_otra == 1 ~ "CRONICA, INFECTO CONTAGIOSA Y OTRO", enfermedad_cronica == 2 & enfermedad_infecto_contagiosa == 2 & enfermedad_otra == 2 ~ "NINGUNA/NO SABE/NO RESPONDE"))

# Utilizando 'count' y 'mutate' hallamos la cantidad de reos que poseen cierto tipo de enfermedad, así como el porcentaje que representan respecto del total.

CNPP_data |>
  count(enfermedades) |>
  mutate(Porcentaje_enfermedades = round(n/sum(n)*100,1)) |>
  print(n = Inf) |>   
  arrange(desc(n)) |> 
  rename("cantidad_reos"=n)
## # A tibble: 8 × 3
##   enfermedades                           n Porcentaje_enfermedades
##   <chr>                              <int>                   <dbl>
## 1 CRONICA                             6546                     8.6
## 2 CRONICA E INFECTO CONTAGIOSA         606                     0.8
## 3 CRONICA Y OTRA                      4334                     5.7
## 4 CRONICA, INFECTO CONTAGIOSA Y OTRO   522                     0.7
## 5 INFECTO CONTAGIOSA                  2243                     3  
## 6 INFECTO CONTAGIOSA Y OTRA            647                     0.9
## 7 NINGUNA/NO SABE/NO RESPONDE        48695                    64.1
## 8 OTRA                               12370                    16.3
# A partir de la variable obtenida ('enfermedades'), se presenta a continuación un gráfico de barras que permitirá observar la cantidad de reos que poseen cierto tipo de enfermedad.

library(ggplot2)

CNPP_data |>
  mutate(enfermedades = recode_factor(enfermedades, !!!etiqueta_1)) |>
  count(enfermedades) |>
  ggplot() +
  aes(x = enfermedades, y = n, fill = enfermedades) +
  geom_col(position = "dodge", width = 0.8) +
  geom_text(aes(label = n),
            position = position_dodge(width = 0.8), vjust = -0.5, size = 3, fontface = "bold") +
  theme_minimal() +
  scale_fill_brewer(palette = "Set1") +
  labs(
    title = "PERÚ: POBLACIÓN PENITENCIARIA QUE PADECE \nDE ALGUNA ENFERMEDAD",
    subtitle = "(Frecuencia)",
    x = "Enfermedades",
    y = "Frecuencia")+
  theme(axis.text.x = element_blank())

Como puede observarse, un gran número de reos señala que no tiene ninguna enfermedad, o no sabe, o no responde a la pregunta realizada. En segundo lugar, 12,370 reos mencionan que tienen otro tipo de enfermedad (hepatitis, depresión, ansiedad, adicción a sustancias psicoactivas, cáncer, otro); seguido por aquellos que tienen una enfermedad crónica (asma, bronquitis o enfisema, hipertensión, diabetes).

P201_DD. DEPARTAMENTO EN EL QUE OCURRIO EL DELITO
# CNPP_data |>
#   count(P201_DD) |>                          #count para contar la cantidad de casos.
#   mutate(Porcentaje = round(n/sum(n)*100,1)) |> #Mutate crea la variable porcentaje.
#   print(n = Inf) |>   
#   arrange(desc(n))


#Importar las librerías para el mapa

library(plotly)
library(mapsPERU)
library(tidyverse)
library(ggrepel)
library(haven)

library(leaflet)
library(leaflet.extras)
library(rworldxtra)
library(raster)
library(sf)



#Extraemos las coordenadas del paquete mapsPERU departamento
df <- map_DEP

#convertimos todas las variables que tenga caracteres 
#de minúscula a mayúsculas.
df <- mutate_if(df, is.character, toupper)

#Quitamos las tildes de las mayúsculas
df$DEPARTAMENTO <- chartr('Á,É,Í,Ó,Ú','A,E,I,O,U', df$DEPARTAMENTO)

#Renombramos la variable P201_DD de la base CNPP_data
df_total_mapa <- rename(CNPP_data, DEPARTAMENTO = P201_DD)

#Extraemos los datos de interés para el mapa

Delito_depart <- df_total_mapa |>
  count(DEPARTAMENTO) |>                          #count para contar la cantidad de casos.
  mutate(Porcentaje = round(n/sum(n)*100,1)) |> #Mutate crea la variable porcentaje.
  print(n = Inf) |>   
  arrange(desc(n))
## # A tibble: 27 × 3
##    DEPARTAMENTO        n Porcentaje
##    <chr>           <int>      <dbl>
##  1 ""                 70        0.1
##  2 "AMAZONAS"        709        0.9
##  3 "ANCASH"         2543        3.3
##  4 "APURIMAC"        538        0.7
##  5 "AREQUIPA"       1725        2.3
##  6 "AYACUCHO"       2241        3  
##  7 "CAJAMARCA"      2006        2.6
##  8 "CALLAO"         4156        5.5
##  9 "CUSCO"          3009        4  
## 10 "HUANCAVELICA"    464        0.6
## 11 "HUANUCO"        2177        2.9
## 12 "ICA"            2894        3.8
## 13 "JUNIN"          2463        3.2
## 14 "LA LIBERTAD"    4129        5.4
## 15 "LAMBAYEQUE"     2481        3.3
## 16 "LIMA"          22793       30  
## 17 "LORETO"         1046        1.4
## 18 "MADRE DE DIOS"   813        1.1
## 19 "MOQUEGUA"        480        0.6
## 20 "NEP"            9318       12.3
## 21 "PASCO"           653        0.9
## 22 "PIURA"          2549        3.4
## 23 "PUNO"           1477        1.9
## 24 "SAN MARTIN"     1696        2.2
## 25 "TACNA"           835        1.1
## 26 "TUMBES"          749        1  
## 27 "UCAYALI"        1949        2.6
#Integramos ambas bases de datos a través de DEPARTAMENTO
mapa_delitos <- left_join(df, Delito_depart, by = "DEPARTAMENTO")

#Creamos la base del mapa
leaflet() |> addTiles() |> addCircleMarkers(data = mapa_delitos, lat = ~coords_y, radius = ~Porcentaje,
                                        lng = ~coords_x, color = "red",
                                        fillOpacity = 3, label = ~n, labelOptions(permanent=TRUE) )

El mapa permite identificar rápidamente el departamento donde ocurrió la mayor cantidad de delitos (22793 delitos) la cual corresponde a Lima; y la de menor cantidad, (464 delitos) a Huancavelica.

P204. CUANDO OCURRIÓ EL DELITO, ¿USTED USÓ ALGÚN ARMA?
CNPP_data |>
  filter(!is.na(P204)) |>
  count(P204) |>
  mutate(Porcentaje = round(n/sum(n)*100,1)) |>
  print(n = Inf)
## # A tibble: 3 × 3
##   P204                          n Porcentaje
##   <dbl+lbl>                 <int>      <dbl>
## 1 1 [Sí]                    13613       17.9
## 2 2 [No]                    61617       81.2
## 3 3 [No sabe / No contesta]   663        0.9
table(CNPP_data$P204, useNA = "alw")
## 
##     1     2     3  <NA> 
## 13613 61617   663    70
etiqueta_1 <- c(`1`="Sí",
              `2`="No",
              `3`="No sabe/No contesta")

CNPP_data$P204 <- as.factor(CNPP_data$P204)

CNPP_data |>
  filter(!is.na(P204)) |>
  mutate(P204 = recode_factor(P204,!!!etiqueta_1)) |>
  count(P204) |>
  mutate(
    Porcentaje = round(n/sum(n)*100,1)) |>
  ggplot() +
  aes(x=1, y=Porcentaje, fill=P204) +
  geom_bar(stat="identity") +
  geom_text(aes(label = paste0(n,", ",round(Porcentaje,1),"%")), 
            position = position_stack(vjust = 0.5)) +
  coord_polar(theta = "y") + 
  theme_void() + 
  scale_fill_brewer(palette="Set1") +
  labs(
    title = "PERÚ: POBLACIÓN PENITENCIARIA QUE UTILIZÓ UN ARMA \nCUANDO OCURRIÓ EL DELITO",
    subtitle = "(Frecuencia, porcentaje)"
  )

Solo el 17.9% de la población penitenciaria utilizó un arma cuando ocurrió el delito. La mayoría (81.2%) no lo utilizó.

P215. ¿USTED ESTUVO INTERNADO(A) EN ALGÚN CENTRO JUVENIL?
table(CNPP_data$P215, useNA = "alw")
## 
##     1     2     3  <NA> 
##  5750 69651   492    70
etiqueta_1 <- c(`1`="Sí",
              `2`="No",
              `3`="No sabe/No contesta")


CNPP_data$P215 <- as.factor(CNPP_data$P215)


CNPP_data |>
  filter(!is.na(P215)) |>
  mutate(P215 = recode_factor(P215,!!!etiqueta_1)) |>
  count(P215) |>
  mutate(
    Porcentaje = round(n/sum(n)*100,1)) |>
  ggplot() +
  aes(x=1, y=Porcentaje, fill=P215) +
  geom_bar(stat="identity") +
  geom_text(aes(label = paste0(n,", ",round(Porcentaje,1),"%")), 
            position = position_stack(vjust = 0.5)) +
  coord_polar(theta = "y") + 
  theme_void() + 
  scale_fill_brewer(palette="Set1") +
  labs(
    title = "PERÚ: POBLACIÓN PENITENCIARIA QUE ESTUVO \nINTERNADO(A) EN ALGÚN CENTRO JUVENIL",
    subtitle = "(Frecuencia, porcentaje)"
  )

El 91.8% de la población penitenciaria no estuvo internado en algún centro juvenil.

P220. SIN TOMAR EN CUENTA LA SENTENCIA QUE ACTUALMENTE CUMPLE: ¿EN ALGUNA OTRA OCASIÓN LO HABÍAN SENTENCIADO O PROCESADO A PENA EFECTIVA POR ALGÚN OTRO DELITO?
table(CNPP_data$P220, useNA = "alw")
## 
##     1     2     3  <NA> 
##  9833 49037   461 16632
etiqueta_1 <- c(`1`="Sí",
              `2`="No",
              `3`="No sabe/No contesta")


CNPP_data$P220 <- as.factor(CNPP_data$P220)

CNPP_data |>
  filter(!is.na(P220)) |>
  mutate(P220 = recode_factor(P220,!!!etiqueta_1)) |>
  count(P220) |>
  mutate(
    Porcentaje = round(n/sum(n)*100,1)) |>
  ggplot() +
  aes(x=1, y=Porcentaje, fill=P220) +
  geom_bar(stat="identity") +
  geom_text(aes(label = paste0(n,", ",round(Porcentaje,1),"%")), 
            position = position_stack(vjust = 0.5)) +
  coord_polar(theta = "y") + 
  theme_void() + 
  scale_fill_brewer(palette="Set1") +
  labs(
    title = "PERÚ: POBLACIÓN PENITENCIARIA QUE ESTUVO \nANTERIORMENTE SENTENCIADO O PROCESADO A PENA \nEFECTIVA POR ALGÚN OTRO DELITO",
    subtitle = "(Frecuencia, porcentaje)"
  )

El 16.6% de la población penitenciaria estuvo anteriormente sentenciado o procesado a pena efectiva por algún otro delito.

Además, la siguiente tabla muestra el establecimiento penitenciario a las que pertenecen los reos reincidentes.

table(CNPP_data$EST_PENIT, CNPP_data$P220)
##                                   
##                                       1    2    3
##   E.P. Anexo de Mujeres Chorrillos   19  123    2
##   E.P. Camana                        22  183    0
##   E.P. de Abancay                    14  156    1
##   E.P. de Ancon                     549  765   10
##   E.P. de Andahuaylas                24  261    2
##   E.P. de Arequipa                  320 1354    5
##   E.P. de Ayacucho                  203 1689    7
##   E.P. de Bagua Grande               25  134    0
##   E.P. de Cajamarca                 173  937   19
##   E.P. de Cañete                    236 1530   22
##   E.P. de Cerro Pasco                 3  128    1
##   E.P. de Chachapoyas                88  458    1
##   E.P. de Challapalca                36   91    0
##   E.P. de Chanchamayo                29  346    2
##   E.P. de Chiclayo                  425 2354   30
##   E.P. de Chimbote                  374 1530   22
##   E.P. de Chincha                   186  972   10
##   E.P. de Chota                       5   87    0
##   E.P. de Cusco                     172 1739   18
##   E.P. de Huacho                    544  987    4
##   E.P. de Huancavelica                9  163    1
##   E.P. de Huancayo                  197 1560    5
##   E.P. de Huanta                      4   37    1
##   E.P. de Huanuco                   166 1782   10
##   E.P. de Huaral                   1114 1865   29
##   E.P. de Huaraz                     90  757    4
##   E.P. de Ica                       577 2797   24
##   E.P. de Iquitos                    65  690    1
##   E.P. de Jaen                       19  260    0
##   E.P. de Jauja                       6   63    1
##   E.P. de Juanjui                    30  435    4
##   E.P. de la Oroya                    5   81    0
##   E.P. de Lampa                       3   79    0
##   E.P. de Lurigancho               1199 5579   54
##   E.P. de Moyobamba                  48  463    0
##   E.P. de Pacasmayo                   0   10    0
##   E.P. de Pto. Maldonado             55  478    2
##   E.P. de Pucallpa                  198 1288    7
##   E.P. de Puno                       68  355    2
##   E.P. de San Ignacio                 2   51    0
##   E.P. de Sananguillo               108  415    2
##   E.P. de Satipo                      5   51    0
##   E.P. de Sullana                    16   58    0
##   E.P. de Tacna                      72  508    5
##   E.P. de Tarapoto                   21  282    4
##   E.P. de Tarma                       6   64    0
##   E.P. de Trujillo                  472 2991   41
##   E.P. de Tumbes                     70  649    3
##   E.P. de Yurimaguas                  4  115    2
##   E.P. del Callao                   372 1950   20
##   E.P. Juliaca                       92  703    4
##   E.P. Miguel Castro Castro         656 1938   42
##   E.P. Modelo Ancon II - S.M.V.C.    69 1183    9
##   E.P. Mujeres de Arequipa           12  115    0
##   E.P. Mujeres de Chorrillos         80  458    3
##   E.P. Mujeres de Concepción          7   17    0
##   E.P. Mujeres de Iquitos             5   39    0
##   E.P. Mujeres de Tacna              13   64    0
##   E.P. Mujeres de Trujillo           10  157    0
##   E.P. Mujeres del cusco              9   93    0
##   E.P. Piura                        397 2141   22
##   E.P. Quillabamba                   16  191    1
##   E.P. Virgen de Fatima              17  223    1
##   E.P. Virgen de la Merced            1   11    0
##   Otros                               1    4    1

Se puede observar que el establecimiento penitenciario donde se encuentra la mayoría de reos reincidentes (opción 1) están en el E.P. de Lurigancho (1199 reos).

303. ¿USTED ESTÁ ESTUDIANDO EN ALGÚN PROGRAMA EN EL ESTABLECIMIENTO PENITENCIARIO?
CNPP_data$P303 <- as.factor(CNPP_data$P303)

etiqueta_303 <- c(`1`="Participa", `2`="No Participa")

BASE303 <- CNPP_data |>
  filter(!is.na(P303)) |>
  mutate(P303 = recode_factor(P303,!!!etiqueta_303)) |>
  count(P303) |>
  mutate(porcentaje = round(n/sum(n)*100,1))

etiquetas <- paste0(etiqueta_303, "\n(", BASE303$n, ", ", BASE303$porcentaje, "%)" )
pie(BASE303$n, labels = etiquetas,col=c("blue","red"), main="PARTICIPACION EN TALLERES PENITENCIARIOS \n(Frecuencia, Porcentaje)")

306. ¿POR QUÉ PARTICIPA EN LOS TALLERES LABORALES?
table(CNPP_data$P306, useNA = "alw")
## 
##     1     2     3     4  <NA> 
##  7253  4998  1079   142 62491
etiqueta_306 <- c(`1`="APRENDER UN OFICIO", `2`="OBTENER BENEFICIOS", `3`="PASAR TIEMPO", `4`="OTROS")


CNPP_data$P306 <- as.factor(CNPP_data$P306)

BASE306 <- CNPP_data |>
  filter(!is.na(P306)) |>
  mutate(P306 = recode_factor(P306,!!!etiqueta_306)) |>
  count(P306) |>
  mutate(Porcentaje = round(n/sum(n)*100,1))

etiquetas <- paste0(etiqueta_306, "(", BASE306$n, ", ", BASE306$Porcentaje, "%)" )
pie(BASE306$n, labels = etiquetas,col=c("red","green", "blue", "orange"), main="MOTIVOS POR LOS QUE PARTICIPA DE TALLERES LABORALES \n(Frecuencia, Porcentaje)")

308. ¿CUÁL ES LA RAZÓN POR LA QUE USTED NO PARTICIPA EN PROGRAMAS EDUCATIVOS?
etiqueta_308 <- c(`1`="No existen programas adecuados a su nivel"           ,`2`=   "No le interesan los programas educativos que se ofrecen"       ,`3`=   "Porque trabajo"    ,`4`=   "No hay vacantes disponibles"           ,`5`=   "Otros"         ,`6` = "No sabe / No contesta"      ,`7`= "Recien a ingresado o esta cerca a salir del penal"           ,`8`=   "Problemas economicos"          ,`9`=   "Por enfermedad y/o estado de salud"    ,`10`=  "Falta de beneficios penitenciarios")
table(CNPP_data$P308, useNA = "alw")
## 
##     1     2     3     4     5     6     7     8     9    10  <NA> 
##  3526  4371 29968  5140  3524  4689  2316  1757   619   472 19581
CNPP_data$P308 <- as.factor(CNPP_data$P308)

BASE308 <- CNPP_data |>
  filter(!is.na(P308)) |>
  mutate(P308 = recode_factor(P308,!!!etiqueta_308)) |>
  filter(P308!="No sabe / No contesta") |>
  count(P308) |>
  mutate(porcentaje = round(n/sum(n)*100,1))


tabla=table(BASE308$P308, useNA = "alw")
tabla
## 
##               No existen programas adecuados a su nivel 
##                                                       1 
## No le interesan los programas educativos que se ofrecen 
##                                                       1 
##                                          Porque trabajo 
##                                                       1 
##                             No hay vacantes disponibles 
##                                                       1 
##                                                   Otros 
##                                                       1 
##                                   No sabe / No contesta 
##                                                       0 
##       Recien a ingresado o esta cerca a salir del penal 
##                                                       1 
##                                    Problemas economicos 
##                                                       1 
##                      Por enfermedad y/o estado de salud 
##                                                       1 
##                      Falta de beneficios penitenciarios 
##                                                       1 
##                                                    <NA> 
##                                                       0
etiquetas <- paste0(etiqueta_308, "\n(", BASE308$n, ", ", BASE308$porcentaje, "%)" )
titulo <- paste0("¿CUÁL ES LA RAZÓN POR LA QUE USTED \nNO PARTICIPA EN PROGRAMAS EDUCATIVOS? \n(En Porcentaje, N=", sum(BASE308$n),")")
graph308 <- barplot(BASE308$n, border=F , names.arg=BASE308$P308 ,     las=2  , ylim = c(0, 47000),main=titulo, ylab="Frecuencias"  )
text(graph308, BASE308$n + 4000 , paste0(BASE308$n,"\n(",BASE308$porcentaje,"%)") ,cex=1) 

313_1. ¿EN CUÁLES DE LAS SIGUEINTES ACTIVIDADES UD HA PARTICIPADO DURANTE EL ÚLTIMO MES: Actividades deportivas?
table(CNPP_data$P313_1)
## 
##     1     2     3 
## 49243 26419   219
CNPP_data$P313_1 <- as.factor(CNPP_data$P313_1)

etiqueta_313_1 <- c(`1`="SI", `2`="NO", `3`="NO SABE / NO OPINA")

BASE313_1 <- CNPP_data |>
  filter(!is.na(P313_1)) |>
  mutate(P313_1 = recode_factor(P313_1,!!!etiqueta_313_1)) |>
  count(P313_1) |>
  mutate(porcentaje = round(n/sum(n)*100,1))

etiquetas <- paste0(etiqueta_313_1, " (",BASE313_1$porcentaje, " %)" )
pie(BASE313_1$n, labels = etiquetas, col=c("blue","red"), main=paste0("PARTICIPACIÓN EN LAS ACTIVIDADES DEPORTIVAS \nDURANTE EL ÚLTIMO MES \n(En Porcentaje, N=", sum(BASE313_1$n),")"))

313_2. ¿EN CUÁLES DE LAS SIGUEINTES ACTIVIDADES UD HA PARTICIPADO DURANTE EL ÚLTIMO MES: Actividades laborales reconocidas por el INPE?
table(CNPP_data$P313_2)
## 
##     1     2     3 
## 36536 38843   502
CNPP_data$P313_2 <- as.factor(CNPP_data$P313_2)

etiqueta_313_2 <- c(`1`="SI", `2`="NO", `3`="NO SABE / NO OPINA")

BASE313_2 <- CNPP_data |>
  filter(!is.na(P313_2)) |>
  mutate(P313_1 = recode_factor(P313_2,!!!etiqueta_313_2)) |>
  count(P313_2) |>
  mutate(porcentaje = round(n/sum(n)*100,1))

etiquetas <- paste0(etiqueta_313_2, " (",BASE313_2$porcentaje, " %)" )
pie(BASE313_2$n, labels = etiquetas, col=c("green","yellow","blue"), main=paste0("PARTICIPACIÓN EN LABORES RECONOCIDAS POR EL INPE \nDURANTE EL ÚLTIMO MES \n(En Porcentaje, N=", sum(BASE313_2$n),")"))

313_3. ¿EN CUÁLES DE LAS SIGUEINTES ACTIVIDADES UD HA PARTICIPADO DURANTE EL ÚLTIMO MES: Labores de limpieza o mantenimiento de la institución??
table(CNPP_data$P313_3)
## 
##     1     2     3 
## 52930 22710   241
CNPP_data$P313_3 <- as.factor(CNPP_data$P313_3)

etiqueta_313_3 <- c(`1`="SI", `2`="NO", `3`="NO SABE / NO OPINA")

BASE313_3 <- CNPP_data |>
  filter(!is.na(P313_3)) |>
  mutate(P313_3 = recode_factor(P313_3,!!!etiqueta_313_3)) |>
  count(P313_3) |>
  mutate(porcentaje = round(n/sum(n)*100,1))

etiquetas <- paste0(etiqueta_313_3, " (",BASE313_3$porcentaje, " %)" )
pie(BASE313_3$n, labels = etiquetas, col=c("orange","purple","gray"), main=paste0("PARTICIPACIÓN EN LABORES DE LIMPIEZA \nDURANTE EL ÚLTIMO MES \n(En Porcentaje, N=", sum(BASE313_3$n),")"))

313_4. ¿EN CUÁLES DE LAS SIGUEINTES ACTIVIDADES UD HA PARTICIPADO DURANTE EL ÚLTIMO MES: Programa de tratamiento PIM??
table(CNPP_data$P313_4)
## 
##     1     2     3 
## 32860 40090  2931
CNPP_data$P313_4 <- as.factor(CNPP_data$P313_4)

etiqueta_313_4 <- c(`1`="SI", `2`="NO", `3`="NO SABE / NO OPINA")

BASE313_4 <- CNPP_data |>
  filter(!is.na(P313_4)) |>
  mutate(P313_4 = recode_factor(P313_4,!!!etiqueta_313_4)) |>
  count(P313_4) |>
  mutate(porcentaje = round(n/sum(n)*100,1))

etiquetas <- paste0(etiqueta_313_4, " (",BASE313_4$porcentaje, " %)" )
pie(BASE313_4$n, labels = etiquetas, col=c("green","red","gray"), main=paste0("PARTICIPACIÓN EN PROGRAMA DE TRATAMIENTO - PIM \nDURANTE EL ÚLTIMO MES \n(En Porcentaje, N=", sum(BASE313_4$n),")"))

313_5. ¿EN CUÁLES DE LAS SIGUEINTES ACTIVIDADES UD HA PARTICIPADO DURANTE EL ÚLTIMO MES: Otros??
table(CNPP_data$P313_5)
## 
##     1     2     3 
##  2049 71528  2304
CNPP_data$P313_5 <- as.factor(CNPP_data$P313_5)

etiqueta_313_5 <- c(`1`="SI", `2`="NO", `3`="NO SABE / NO OPINA")

BASE313_5 <- CNPP_data |>
  filter(!is.na(P313_5)) |>
  mutate(P313_5 = recode_factor(P313_5,!!!etiqueta_313_5)) |>
  count(P313_5) |>
  mutate(porcentaje = round(n/sum(n)*100,1))

etiquetas <- paste0(etiqueta_313_5, " (",BASE313_5$porcentaje, " %)" )
pie(BASE313_5$n, labels = etiquetas, col=c("blue","gold","gray"), main=paste0("PARTICIPACIÓN EN OTROS \nDURANTE EL ÚLTIMO MES \n(En Porcentaje, N=", sum(BASE313_5$n),")"))

DESPUÉS: EXPECTATIVAS AL SALIR DEL ESTABLECIMIENTO PENITENCIARIO

P403_1. ¿QUÉ PIENSA HACER CUANDO SALGA DEL EP? Estudiar
table(CNPP_data$P403_1, useNA = "alw")
## 
##     0     1  <NA> 
## 65641 10189   133
etiqueta_2 <- c(`0`="No",
              `1`="sí")

CNPP_data$P403_1 <- as.factor(CNPP_data$P403_1)


CNPP_data |>
  filter(!is.na(P403_1)) |>
  mutate(P403_1 = recode_factor(P403_1,!!!etiqueta_2)) |>
  count(P403_1) |>
  mutate(
    Porcentaje = round(n/sum(n)*100,1)) |>
  ggplot() + 
  aes(x=1, y=Porcentaje, fill=P403_1) +
  geom_bar(stat="identity") +
  geom_text(aes(label = paste0(n,", ",round(Porcentaje,1),"%")), 
            position = position_stack(vjust = 0.5)) +
  coord_polar(theta = "y") + 
  theme_void() + 
  scale_fill_brewer(palette="Set1") +
  labs(
    title = "PERÚ: POBLACIÓN PENITENCIARIA QUE PIENSA \nESTUDIAR LUEGO DE SALIR DEL ESTABLECIMIENTO \nPENITENCIARIO",
    subtitle = "(Frecuencia, porcentaje)"
  ) 

Solo el 13.4% de la población penitenciaria piensa estudiar luego de salir del establecimiento penitenciario.

P403_2. ¿QUÉ PIENSA HACER CUANDO SALGA DEL EP? Trabajar
table(CNPP_data$P403_2, useNA = "alw")
## 
##     0     1  <NA> 
##  5416 70414   133
etiqueta_2 <- c(`0`="No",
              `1`="sí")

CNPP_data$P403_2 <- as.factor(CNPP_data$P403_2)

CNPP_data |>
  filter(!is.na(P403_2)) |>
  mutate(P403_2 = recode_factor(P403_2,!!!etiqueta_2)) |>
  count(P403_2) |>
  mutate(
    Porcentaje = round(n/sum(n)*100,1)) |>
  ggplot() +
  aes(x=1, y=Porcentaje, fill=P403_2) +
  geom_bar(stat="identity") +
  geom_text(aes(label = paste0(n,", ",round(Porcentaje,1),"%")), 
            position = position_stack(vjust = 0.5)) +
  coord_polar(theta = "y") + 
  theme_void() + 
  scale_fill_brewer(palette="Set1") +
  labs(
    title = "PERÚ: POBLACIÓN PENITENCIARIA QUE PIENSA \nTRABAJAR LUEGO DE SALIR DEL ESTABLECIMIENTO \nPENITENCIARIO",
    subtitle = "(Frecuencia, porcentaje)"
  )

El 92.9% de la población penitenciaria piensa trabajar luego de salir del establecimiento penitenciario.

P403_3. ¿QUÉ PIENSA HACER CUANDO SALGA DEL EP? Viajar
table(CNPP_data$P403_3, useNA = "alw")
## 
##     0     1  <NA> 
## 72120  3710   133
etiqueta_2 <- c(`0`="No",
              `1`="sí")

CNPP_data$P403_3 <- as.factor(CNPP_data$P403_3)

CNPP_data |>
  filter(!is.na(P403_3)) |>
  mutate(P403_3 = recode_factor(P403_3,!!!etiqueta_2)) |>
  count(P403_3) |>
  mutate(
    Porcentaje = round(n/sum(n)*100,1))|>
  ggplot() + 
  aes(x=1, y=Porcentaje, fill=P403_3) +
  geom_bar(stat="identity") +
  geom_text(aes(label = paste0(n,", ",round(Porcentaje,1),"%")), 
            position = position_stack(vjust = 0.5)) +
  coord_polar(theta = "y") + 
  theme_void() + 
  scale_fill_brewer(palette="Set1") +
  labs(
    title = "PERÚ: POBLACIÓN PENITENCIARIA QUE PIENSA \nVIAJAR LUEGO DE SALIR DEL ESTABLECIMIENTO \nPENITENCIARIO",
    subtitle = "(Frecuencia, porcentaje)"
  )

El 4.9% de la población penitenciaria piensa viajar luego de salir del establecimiento penitenciario.

P403_4. ¿QUÉ PIENSA HACER CUANDO SALGA DEL EP? Retornar a mi país
table(CNPP_data$P403_4, useNA = "alw")
## 
##     0     1  <NA> 
## 74779  1051   133
etiqueta_2 <- c(`0`="No",
              `1`="sí")

CNPP_data$P403_4 <- as.factor(CNPP_data$P403_4)

CNPP_data |>
  filter(!is.na(P403_4)) |>
  mutate(P403_4 = recode_factor(P403_4,!!!etiqueta_2)) |>
  count(P403_4) |>
  mutate(
    Porcentaje = round(n/sum(n)*100,1))|>
  ggplot() + 
  aes(x=1, y=Porcentaje, fill=P403_4) +
  geom_bar(stat="identity") +
  geom_text(aes(label = paste0(n,", ",round(Porcentaje,1),"%")), 
            position = position_stack(vjust = 0.5)) +
  coord_polar(theta = "y") + 
  theme_void() + 
  scale_fill_brewer(palette="Set1") +
  labs(
    title = "PERÚ: POBLACIÓN PENITENCIARIA QUE PIENSA \nRETORNAR A SU PAÍS LUEGO DE SALIR DEL \nESTABLECIMIENTO PENITENCIARIO",
    subtitle = "(Frecuencia, porcentaje)"
  )

El 1.4% de la población penitenciaria piensa retornar a su país luego de salir del establecimiento penitenciario.

P403_5. ¿QUÉ PIENSA HACER CUANDO SALGA DEL EP? Otros
table(CNPP_data$P403_5, useNA = "alw")
## 
##     0     1  <NA> 
## 74376  1454   133
etiqueta_2 <- c(`0`="No",
              `1`="sí")

CNPP_data$P403_5 <- as.factor(CNPP_data$P403_5)

CNPP_data |>
  filter(!is.na(P403_5)) |>
  mutate(P403_5 = recode_factor(P403_5,!!!etiqueta_2)) |>
  count(P403_5) |>
  mutate(
    Porcentaje = round(n/sum(n)*100,1)) |>
  ggplot() + 
  aes(x=1, y=Porcentaje, fill=P403_5) +
  geom_bar(stat="identity") +
  geom_text(aes(label = paste0(n,", ",round(Porcentaje,1),"%")), 
            position = position_stack(vjust = 0.5)) +
  coord_polar(theta = "y") + 
  theme_void() + 
  scale_fill_brewer(palette="Set1") +
  labs(
    title = "PERÚ: POBLACIÓN PENITENCIARIA QUE PIENSA \nREALIZAR OTRA ACTIVIDAD LUEGO DE SALIR DEL \nESTABLECIMIENTO PENITENCIARIO",
    subtitle = "(Frecuencia, porcentaje)"
  )

El 1.9% de la población piensa realizar otra actividad luego de salir del establecimiento penitenciario.

4. Conclusiones

  • Sobre los antecedentes y aspectos sociodemográficos (antes) se identificó …

  • Sobre el contexto del delito y situación en el establecimiento penitenciario (durante) se halló …

  • Sobre las expectativas al salir del establecimiento penitenciario (después) se destaca que la mayoría de la población penitenciaria considera trabajar como la principal actividad (92.9%), mientras que estudiar(13.4%), viajar (4.9%), retornar a su país (1.4%) u otra actividad (1.9%) ocupan menos interés.

  • Se recomienda realizar encuestas sobre el comportamiento posterior de los reos al salir del establecimiento penitenciario.

  • Este estudio puede servir como insumo para el análisis comparativo con el Censo de la Población Penitenciaria del año 2024.

5. Bibliografía